﻿using System.ComponentModel;

namespace NthDownload.Contracts.Plugins.Downloads
{
    public interface IDownloadPlugin : IPlugin, INotifyPropertyChanged
    {
        string DisplayName { get; }
        bool IsSelected { get; set; }
        bool HasSettings { get; }

        IDownloadFactory CreateDownloadFactory();
        IDownloadUIService CreateDownloadUIService(IDownloadFactory factory);
        IDownloadXmlSerializationService CreateDownloadXmlSerializationService();
    }
}
